/****************************************************************
 * Fulguro
 * Copyright (C) 2004 Christophe Clienti
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 ***************************************************************/






/*********** 1D FUNCTIONS ***************/
%feature("autodoc","""
[out] FLGR_Data1D destination
[in] Integer column_x
[in] Integer line length
[in] FLGR_Vector, List or Scalar
[return] FLGR_Ret\n
Draw a line in a 1d signal with a specific value
""") flgr1d_draw_line_ptr;
%rename (flgr1d_draw_line) flgr1d_draw_line(FLGR_Data1D *, int, int, FLGR_Vector *);
extern FLGR_Ret flgr1d_draw_line_ptr(FLGR_Data1D *, int, int, FLGR_Vector *);


/************* 2D FUNCTIONS *************/
%feature("autodoc","""
[out] FLGR_Data2D destination
[in] Integer column_x
[in] Integer row_y
[in] FLGR_Vector, List or Scalar
[return] FLGR_Ret\n
Draw a point at (x,y) with a specific value
""") flgr2d_draw_point_ptr;
%rename (flgr2d_draw_point) flgr2d_draw_point_ptr(FLGR_Data2D *, int, int, FLGR_Vector *);
extern FLGR_Ret flgr2d_draw_point_ptr(FLGR_Data2D *, int, int, FLGR_Vector *);

%feature("autodoc","""
[out] FLGR_Data2D destination
[in] Integer column_x
[in] Integer row_y
[in] Integer Width
[in] FLGR_Vector, List or Scalar
[return] FLGR_Ret\n
Draw a line between (x,y) and (x+size_x-1,y) with a specific value
""") flgr2d_draw_horizontal_line_ptr;
%rename (flgr2d_draw_horizontal_line) flgr2d_draw_horizontal_line_ptr(FLGR_Data2D *, int, int, int, FLGR_Vector *);
extern FLGR_Ret flgr2d_draw_horizontal_line_ptr(FLGR_Data2D *, int, int, int, FLGR_Vector *);

%feature("autodoc","""
[out] FLGR_Data2D destination
[in] Integer column_x
[in] Integer row_y
[in] Integer Height
[in] FLGR_Vector, List or Scalar
[return] FLGR_Ret\n
Draw a line between (x,y) and (x,y+size_y-1) with a specific value
""") flgr2d_draw_vertical_line_ptr;
%rename (flgr2d_draw_vertical_line) flgr2d_draw_vertical_line_ptr(FLGR_Data2D *, int, int, int, FLGR_Vector *);
extern FLGR_Ret flgr2d_draw_vertical_line_ptr(FLGR_Data2D *, int, int, int, FLGR_Vector *);

%feature("autodoc","""
[out] FLGR_Data2D destination
[in] Integer column_x1
[in] Integer row_y1
[in] Integer column_x2
[in] Integer row_y2
[in] FLGR_Vector, List or Scalar
[return] FLGR_Ret\n
Draw a line between (x1,y1) and (x2,y2) with a specific value using Bresenham algorithm
""") flgr2d_draw_line_ptr;
%rename (flgr2d_draw_line) flgr2d_draw_line_ptr(FLGR_Data2D *, int, int, int, int, FLGR_Vector *color);
extern FLGR_Ret flgr2d_draw_line_ptr(FLGR_Data2D *, int, int, int, int, FLGR_Vector *color);


%feature("autodoc","""
[out] FLGR_Data2D destination
[in] Integer column_x
[in] Integer row_y
[in] Integer size_x
[in] Integer size_y
[in] FLGR_Vector, List or Scalar
[return] FLGR_Ret\n
Draw a rectangle between (x,y) and (x+size_x-1,y+size_y-1) with a specific value
""") flgr2d_draw_rectangle_ptr;
%rename (flgr2d_draw_rectangle) flgr2d_draw_rectangle_ptr(FLGR_Data2D *, int, int, int, int, FLGR_Vector *color);
extern FLGR_Ret flgr2d_draw_rectangle_ptr(FLGR_Data2D *, int, int, int, int, FLGR_Vector *color);

%feature("autodoc","""
[out] FLGR_Data2D destination
[in] Integer column_x
[in] Integer row_y
[in] Integer size_x
[in] Integer size_y
[in] FLGR_Vector, List or Scalar
[return] FLGR_Ret\n
Draw a filled rectangle between (x,y) and (x+size_x-1,y+size_y-1) with a specific value
""") flgr2d_draw_filled_rectangle_ptr;
%rename (flgr2d_draw_filled_rectangle) flgr2d_draw_filled_rectangle_ptr(FLGR_Data2D *, int, int, int, int, FLGR_Vector *color);
extern FLGR_Ret flgr2d_draw_filled_rectangle_ptr(FLGR_Data2D *, int, int, int, int, FLGR_Vector *color);

%feature("autodoc","""
[out] FLGR_Data2D destination
[in] Integer column_x
[in] Integer row_y
[in] Integer radius
[in] FLGR_Vector, List or Scalar
[return] FLGR_Ret\n
Draw a circle with a specific value
""") flgr2d_draw_circle_ptr;
%rename (flgr2d_draw_circle) flgr2d_draw_circle_ptr(FLGR_Data2D *, int, int, int, FLGR_Vector *);
extern FLGR_Ret flgr2d_draw_circle_ptr(FLGR_Data2D *, int, int, int, FLGR_Vector *);

%feature("autodoc","""
[out] FLGR_Data2D destination
[in] Integer column_x
[in] Integer row_y
[in] Integer radius
[in] FLGR_Vector, List or Scalar
[return] FLGR_Ret\n
Draw a disc with a specific value
""") flgr2d_draw_disc_ptr;
%rename (flgr2d_draw_disc) flgr2d_draw_disc_ptr(FLGR_Data2D *, int, int, int, FLGR_Vector *);
extern FLGR_Ret flgr2d_draw_disc_ptr(FLGR_Data2D *, int, int, int, FLGR_Vector *);

%feature("autodoc","""
[out] FLGR_Data2D destination
[in] Integer column_x
[in] Integer row_y
[in] Integer major axis length
[in] Integer minor axis length
[in] FLGR_Vector, List or Scalar
[return] FLGR_Ret\n
Draw an ellipse with a specific value
""") flgr2d_draw_ellipse_ptr;
%rename (flgr2d_draw_ellipse) flgr2d_draw_ellipse_ptr(FLGR_Data2D *, int, int, int, int, FLGR_Vector *);
extern FLGR_Ret flgr2d_draw_ellipse_ptr(FLGR_Data2D *dat, int x, int y, int a, int b, FLGR_Vector *color);

%feature("autodoc","""
[out] FLGR_Data2D destination
[in] Integer column_x
[in] Integer row_y
[in] Integer major axis length
[in] Integer minor axis length
[in] FLGR_Vector, List or Scalar
[return] FLGR_Ret\n
Draw a filled ellipse with a specific value
""") flgr2d_draw_filled_ellipse_ptr;
%rename (flgr2d_draw_filled_ellipse) flgr2d_draw_filled_ellipse_ptr(FLGR_Data2D *, int, int, int, int, FLGR_Vector *);
extern FLGR_Ret flgr2d_draw_filled_ellipse_ptr(FLGR_Data2D *dat, int x, int y, int a, int b, FLGR_Vector *color);



